<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
        *{
            margin: 0;
            padding: 0;
        }
        .title{
            line-height: 40px;
            font-weight: bold;
            text-align: center;
        }
        .list .item{
            display: flex;
            align-items: center;
            margin: 20px;
        }
        .list .item img{
            width: 60px;
            border-radius: 60px;
            margin-right: 20px;
        }
        .middle{
            width: 200px;
        }
        .name{
            margin-bottom: 10px;
            color: rgb(101, 76, 12);
            font-weight: 700;
        }
        .desc{
            color: rgb(194, 145, 22);
            font-size: 14px;
        }
        button{
            width: 70px;
            height: 30px;
            border: 2px solid rgb(255, 149, 0);
            background-color: rgb(255, 191, 0);
            border-radius:30px;

        }
        
</style>
<body>
    <!-- 由于Vue实例对象挂载到#app表示的dom节点上，多以Vue实例对象身上定义的数据和方法就可以在这个dom节点内部使用（在dom节点外部不可以使用） -->
    <div id="app">
        <div class="title">任务列表</div>
        <div class="list">
            <!-- 列表渲染，使用data中定义的数据，渲染出多个任务，形成一个列表 -->
            <!-- 列表渲染，使用vuejs中提供的指令 v-for ，可以配合key属性一起使用 -->
            <!-- 列表渲染，v-for="(item,index) in tasklist" -->
            <!-- {{表达式  或  变量}} 也叫作插值表达式(双大括号) 会解析内部表达式或变量的值，只能用在标签的内容区-->
            <!-- 属性值得绑定，当属性之中有变量，需要计算时，属性名称前必须有v-bind：否则属性值无法正常解析 -->
            <!-- v-bind:属性名="属性值"，属性值可以是变量，也可以是表达式 -->
            <!-- 如果属性值中没有变量，也不需要计算，就是固定的字符串，则不需要在属性名前加v-bind -->
            <div class="item" v-for="(item,index) in tasklist" key="index">
                <div class="left">
                    <img v-bind:src="item.pic" alt="">
                </div>
                <div class="middle">
                    <div class="name"> {{item.name}} </div>
                    <div class="desc"> {{item.desc}} </div>
                </div>
                <div class="right">
                    <button>{{item.status==1?'去完成':item.status==2?'领取':'已领取'}}</button>
                </div>
            </div>
        </div>
    </div>

</body>

</html>
<!-- 这个js文件对外暴露了一个vue构造函数，我们接已使用vue构造函数实例化vue对象 -->
<script src="./vue-2.5.21.js"></script>
<script>
    //实例化Vue对象
    var v = new Vue({
        //这个位置放置Vuejs规定的一些选项(这些选项的名字是固定的，另外这些选项是可选的)
        el: '#app',//el 表示Vue实例挂载的dom节点，id选择器
        data: {
            tasklist: [
                { id: 1, pic:'./pic.png', name: '咪咕视频送流量', desc: '每月领500MB流量', status: 1 },
                { id: 2, pic:'./pic.png', name: '咪咕视频送福利', desc: '每月领800MB流量', status: 2 },
                { id: 3, pic:'./pic.png', name: '咪咕视频送折扣券', desc: '每月领600MB流量', status: 3 },
                { id: 4, pic:'./pic.png', name: '咪咕视频送超级秒杀', desc: '每月领1500MB流量', status: 4 },
            ]
        },//data 定义响应式数据，data的类型可以是对象，也可以是函数
        // data:function(){return{}} 两种写法
        computed: {},//定义计算属性
        watch: {},//定义数据监听
        methods: {},//定义方法(函数)
        filters: {},//定义过滤器
        directives: {},//定义自定义指令
        components: {},//注册局部组件
    })
    //接下来使用VueJS的声名式编程语法，实现<数据驱动试图更新>

</script>